class Tile:
    def __init__(self, wall, block_sight = None):
        self.wall = wall
        if block_sight is None:
            block_sight = wall
        self.block_sight = block_sight
        self.explored = False
        self.objects = []

    def block( self, block_sight = None ):
        self.wall = True
        if block_sight is None:
            block_sight = wall
        self.block_sight = block_sight

    def clear( self ):
        self.wall = False
        self.block_sight = False

    def explore( self ):
        self.explored = True

    def is_blocked( self ):
        for object in self.objects:
            if object.blocks:
                return True
        return self.wall
